/**
 * 内容检测和微信分享混入
 * 用于内容审核和微信分享功能配置
 */
export default {
	data() {
		return {
			// 分享相关数据
			shareId: ''
		};
	},

	onShow() {
		// 配置微信分享菜单
		// #ifdef MP-WEIXIN
		if (wx.showShareMenu) {
			wx.showShareMenu({
				withShareTicket: true,
				menus: ['shareAppMessage', 'shareTimeline']
			});
		}
		// #endif

		// 获取页面参数中的id
		const currentPage = getCurrentPages().pop();
		if (!currentPage) return;
		const options = currentPage.options || {};
		// 获取参数中的id
		const queryId = options.id || (options.query && options.query.id);

		if (queryId) {
			this.shareId = queryId;
		}
	},

	onShareAppMessage(res) {
		if (res.from === 'menu') {
			return {
				title: '图片处理工具集合',
				path: `/pages/home/home?id=${this.shareId}`,
				imageUrl: '/static/images/share_icon.png'
			};
		}
	},

	onShareTimeline(res) {
		return {
			title: '图片处理工具集合',
			query: `id=${this.shareId}`,
			imageUrl: '/static/images/share_icon.png'
		};
	},
	methods: {
		/**
		 * 内容审核方法 - 基于waterMark.vue中的实现
		 * @param {string} text - 要审核的文本内容
		 * @returns {Promise<boolean>} - 审核结果
		 */
		async contentCensor(text) {
			try {
				// 如果没有文字内容需要审核，直接通过
				if (!text || !text.trim()) {
					return true;
				}

				console.log('准备审核的文本内容:', text);

				const response = await uni.request({
					url: 'https://api.handicraft.yly.ink/lyHandicrafts/api/content/text-censor-no-auth',
					method: 'POST',
					data: {
						text: text.trim()
					},
					header: {
						'Content-Type': 'application/json'
					}
				});
				
				const censorResult = response[1].data;
				console.log('内容审核结果:', censorResult);

				if (censorResult.code !== 0) {
					throw new Error('内容审核失败，请重试');
				}

				if (!censorResult.data.isCompliant) {
					uni.showModal({
						title: '内容审核未通过',
						content: '您的内容包含不当信息，请修改后重新发布',
						showCancel: false,
						confirmText: '知道了'
					});
					return false;
				}

				return true;
			} catch (error) {
				console.error('内容审核异常:', error);
				uni.showToast({
					title: error.message || '内容审核失败，请重试',
					icon: 'none'
				});
				return false;
			}
		},
		
		/**
		 * 批量内容检测方法 - 用于检测多个文本字段
		 * @param {Object} textFields - 包含多个文本字段的对象，格式: { fieldName: textContent, ... }
		 * @param {Function} onSuccess - 检测通过后的回调函数
		 * @param {Function} onFail - 检测失败后的回调函数（可选）
		 */
		async checkAndSave(textFields, onSuccess, onFail) {
			try {
				// 收集所有需要检测的文本
				const textsToCheck = [];
				
				for (const [fieldName, textContent] of Object.entries(textFields)) {
					if (textContent && textContent.trim()) {
						textsToCheck.push({
							field: fieldName,
							content: textContent.trim()
						});
					}
				}

				// 如果没有需要检测的内容，直接执行成功回调
				if (textsToCheck.length === 0) {
					if (typeof onSuccess === 'function') {
						onSuccess();
					}
					return;
				}

				// 显示检测中提示
				uni.showLoading({
					title: '内容检测中...'
				});

				// 逐个检测文本内容
				for (const textItem of textsToCheck) {
					const isCompliant = await this.contentCensor(textItem.content);
					if (!isCompliant) {
						uni.hideLoading();
						if (typeof onFail === 'function') {
							onFail(textItem.field);
						}
						return;
					}
				}

				// 所有检测都通过
				uni.hideLoading();
				if (typeof onSuccess === 'function') {
					onSuccess();
				}

			} catch (error) {
				uni.hideLoading();
				console.error('批量内容检测异常:', error);
				uni.showToast({
					title: '内容检测失败，请重试',
					icon: 'none'
				});
				if (typeof onFail === 'function') {
					onFail('system_error');
				}
			}
		}
	}
}